package com.junsi.service;

import java.util.List;

import org.springframework.stereotype.Service;

import com.junsi.bean.Staff;
import com.junsi.util.PageUtil;

/**
 * 员工Serivce接口
 * @author wkp
 *
 */
@Service
public interface StaffSerivce {
	
	/**
	 * 根据ID查找
	 * @param id
	 * @return
	 */
	public Staff findById(Integer id);
	
	/**
	 * 查询所有员工信息
	 * @return
	 */
	public List<Staff> findByAll();
	
	/**
	 * 新增
	 * @param staff
	 * @return
	 */

	public boolean save(Staff staff);
	
	/**
	 * 修改员工信息
	 * @param staff
	 * @return
	 */
	public boolean update(Staff staff);
	
	/**
	 * 根据ID删除员工信息
	 * @param id
	 * @return
	 */
	public boolean delete(Integer id);
	
	/**
	 * 根据部门编号查询该部门的所有员工
	 * @param id
	 * @return
	 */
	public List<Staff> findByDepartment(Integer id,Integer endIndex,Integer startIndex);
	
	/**
	 * 根据部门编号查询该部门的所有员工的人数
	 * @param id
	 * @return
	 */
	public Integer findByDepartmentNum(Integer id);
	
	/**
	 * 根据账号查询
	 * @param staff_userName
	 * @return
	 */
	public Staff findByUserName(String staff_userName);
	
	/**
	 * 根据ID查询所有下属员工
	 * @param staffId
	 * @return
	 */
	public List<Staff> findBySuperior(Integer staffId);
	
	/**
	 * 根据部门编号查询下级部门的员工
	 * @param id
	 * @param endIndex
	 * @param startIndex
	 * @return
	 */
	public List<Staff> findByDepartmentId(Integer departmentId);
	
	/**
	 * 根据ID查询员工名字
	 * @param staff_id
	 * @return
	 */
	public String findByName(String staff_id);
	
	/**
	 * 批量删除
	 * @param id
	 * @return
	 */
	public boolean deletes(String id);
	
	/**
	 * 根据部门ID查询员工
	 * @param id
	 * @return
	 */
	public List<Staff> findByDepId(Integer id);
	
	/**
	 * 多条件查询方法：姓名，电话，邮箱
	 * @param selectWhere
	 * @return
	 */
	public List<Staff> findSelectWhere(String selectWhere);
	
	public List<Staff> findByOneName(String name);
	
public List<Staff> findAllPage(PageUtil pageUtil);
	
	public int findAllCount();
	
public int findAllCountCondition(String condition);
	
	public List<Staff> findAllPageCondition(PageUtil pageUtil,String condition);
}
